/**
 * Ins推广
 */

"app"

const { randomSleep, deleteDirCache, deviceWidth, deviceHeight,jsDir,getRandomSong, getTranslateTitle,
    waitForAndClick, waitForAndSetText, exitAppAndJs,httpUploadErrMsg, device_model
} = require("/sdcard/Download/js/config.js");

device.wakeUp()
const appName = "Instagram"
try{
    launchApp(appName)
    /**
     * 点击搜索
     * TODO：将searchText替换成服务器数据
     */
    {
        if(!waitForAndClick(descContains("搜索"))){
            toast("点击搜索失败")
            log("点击搜索失败")
            exitAppAndJs("出错脚本："+appName+"推广脚本\n问题：点击搜索失败")
        }

        // id("search_tab").waitFor()
        // id("search_tab").click()
        
        var searchText = "samanthachoi9977"
    
        // 点击搜索框
        if(!waitForAndClick(id("action_bar_search_edit_text"))){
            toast("点击搜索框失败")
            log("点击搜索框失败")
            exitAppAndJs("出错脚本："+appName+"推广脚本\n问题：点击搜索框失败")
        }
        if(!waitForAndSetText(id("action_bar_search_edit_text"), searchText)){
            toast("设置搜索内容失败")
            log("设置搜索内容失败")
            exitAppAndJs("出错脚本："+appName+"推广脚本\n问题：设置搜索内容失败")
        }

        // 等待10秒，等待搜索结果
        var count_row = 0;
        while(id("row_shimmer_container").exists()){
            if(count_row === 10){
                toast("搜索超时！")
                log("搜索超时！")
            }
            sleep(1000);
            count_row ++;
        }
        toast("搜索成功")
        log("搜索成功")

        if(!waitForAndClick(text(searchText).id("row_search_user_username"), 2)){
            toast("无此人！")
            log("无此人！")
            exitAppAndJs("出错脚本："+appName+"推广脚本\n问题：无此人："+searchText)
        }
        toast("找到此人")
        // id("action_bar_search_edit_text").waitFor()
        // click(id("action_bar_search_edit_text").findOne().bounds().centerX(), id("action_bar_search_edit_text").findOne().bounds().centerY())
        // randomSleep()
    
        // randomSleep()
        // randomSleep()
    
        // 搜索
        // id("action_bar_search_edit_text").findOne().setText(searchText)
        // randomSleep()
        // 等待搜索结果
        // id("row_search_user_container").depth(3).waitFor()
        // var resultList = id("row_search_user_container").depth(3).find()
        // toastLog("result count = "+resultList.length)
        // resultList.each(item =>{
        //     if(item.childCount()!=0){
        //         // toastLog("找到！"+item.child(0).child(1).text())
        //         if(item.child(0).child(1).text() == searchText){
        //             item.click()
        //             randomSleep()
        //         }
        //     }
        // })
    
    }
    
    /**
     * 主页点击
     */
    {
        // 等待主页加载完毕，等待15s
        count_row = 0;
        while(!text("帖子").exists()){
            if(count_row === 15){
                toast("搜索超时！")
                log("搜索超时！")
            }
            sleep(1000);
            count_row ++;
        }

        // text("帖子").waitFor()
        toastLog("主页加载完毕！")
        // randomSleep()
        // if(id("text_1").exists()){
        //     id("text_1").click()
        // }
    
        // 点击关注，若已关注，则不点击
        if(!waitForAndClick(id("profile_header_follow_button").text("关注"), 2)){
            toast("关注失败！")
            log("关注失败!")
            if(textContains("已关注").exists() || descContains("已关注").exists()){
                log("已关注")
                toast("已关注")
            }else{
                exitAppAndJs("出错脚本："+appName+"推广脚本\n问题：点击关注失败："+searchText)
            }
            
        }
        toast("点击关注")
        log("点击关注")

        // 点击推广
        if(!waitForAndClick(id("text_1"), 2)){
            toast("点击推广链接失败！")
            log("点击推广链接失败!")
            exitAppAndJs("出错脚本："+appName+"推广脚本\n问题：点击推广链接失败，可能是没有推广链接："+searchText)
        }
        log("推广点击成功")
        toast("推广点击成功")

        // 等待推广链接打开，等待20s
        // id("ig_browser_text_subtitle").waitFor()
        count_row = 0;
        while(id("ig_browser_chrome_progress_bar").exists()){
            toast("等待加载")
            log("等待加载")
            if(count_row === 20){
                toast("搜索超时！")
                log("搜索超时！")
                exitAppAndJs("出错脚本："+appName+"推广脚本\n问题："+"推广链接点击失效！")
            }
            sleep(1000);
            count_row ++;
        }
        if(textContains("403").exists()){
            toast("403错误")
            log("403错误")
            exitAppAndJs("出错脚本："+appName+"推广脚本\n问题："+"403错误！该推广失效！")
        }
        toast("推广页面加载成功")
        log("推广页面加载成功")

        // 点击打开应用
        if(!waitForAndClick(text("打开应用"))){
            exitAppAndJs("出错脚本："+appName+"推广脚本\n问题："+"点击打开应用失败！")
        }
        // randomSleep()
        // var openAppBounds = text("打开应用").findOne().bounds()
        // click(openAppBounds.centerX(), openAppBounds.centerY())
    
        // 点击继续
        if(!waitForAndClick(text("继续"))){
            exitAppAndJs("出错脚本："+appName+"推广脚本\n问题："+"点击继续失败！")
        }
        // text("继续").waitFor()
        // toastLog("继续存在!")
        // randomSleep()
        // click(text("继续").findOne().bounds().centerX(), text("继续").findOne().bounds().centerY())
    
        // option，可能直接跳到google商店，也可能直接跳到推广app
        /*
        {
            desc("卸载").waitFor()
            if(desc("更新").exists()){
                toastLog("更新存在！")
                click(desc("更新").findOne().bounds().centerX(), desc("更新").findOne().bounds().centerY())
                randomSleep()
            }else{
                toastLog("更新不存在！")
            }
            desc("打开").waitFor()
            click(desc("打开").findOne().bounds().centerX(), desc("打开").findOne().bounds().centerY())
    
        }
        */
        sleep(5000)
        home()
    
    }
    
    /**
     * 删除后台
     */
    {
        exitAppAndJs()
        // launchApp("Instagram")
        // sleep(1000)
        // recents()
        // sleep(1500)
        // gesture(5,[deviceWidth/2, deviceHeight/2+deviceHeight/4], [deviceWidth/2, deviceHeight/2-deviceHeight/4])
        // sleep(500)
        // home()
    }
    
    toastLog("执行完毕!")
    
    
}catch(e){
    log("出错"+e)
    toast("出错"+e)
    httpUploadErrMsg("推广脚本出错！\n脚本："+appName+"\n出错信息："+e)
}

